import axios from 'axios'
// toast主要用于在请求之前开启loading弹窗
import { showLoadingToast, closeToast } from 'vant'
let host
// process.env是Nodejs提供的一个API，它返回一个包含用户环境信息的对象。
// 通过NODE_ENV 判断当前环境是生产环境(production)还是开发环境(development) 自动切换不同域名
// 开发环境和生产环境
if (process.env.NODE_ENV === 'development') {
  host = 'http://shop.bufantec.com/bufan'
} else {
  host = 'http://shop.bufantec.com/bufan'
}

// 创建axios实例
const instance = axios.create({
  // baseURL  公共接口路径
  baseURL: host,
  // timeout 超时时间
  timeout: 5000
})

// 请求拦截器
instance.interceptors.request.use(
  config => {
    showLoadingToast({
      message: '加载中...',
      forbidClick: true
    })
    // 判断请求类型是get还是post请求  统一请求传参写法
    if (config.method.toLowerCase() === 'get') {
      config.params = config.data
    }
    return config
  },
  error => {
    // do something with request error
    showLoadingToast({
      message: '加载失败...',
      forbidClick: true
    })
    console.log(error) // for debug
    return Promise.reject(error)
  }
)

// 响应拦截器

instance.interceptors.response.use(

  response => {
    // 请求数据获取到之后关闭loading
    closeToast()
    const res = response.data
    return res
  },
  error => {
    // 请求数据失败也关闭loading
    closeToast()

    console.log('err' + error) // for debug
    return Promise.reject(error)
  }
)

export default instance
